//导入验证规则的包
const joi = require('@hapi/joi')

//string() 值必须是字符串
//alphanum() 值只能是包含'a-zA-Z0-9'的字符串
//min(length) 最小长度
//max(length) 最大长度
//required() 值是必填项,不能为undefined 
//pattern(正则表达式) 值必须符合正则表达式的规则
//integer() 整数
// dataUrl() 验证是不是base64格式

//定义用户名和密码的验证规则
const username = joi.string().alphanum().min(1).max(10).required()
const password = joi.string().pattern(/^[\S]{6,12}$/).required()

//定义id,nickname,eamil的验证规则
const id=joi.number().integer().min(1).required()
const nickname=joi.string().required()
const email=joi.string().email().required()

//定义头像验证规则
const avatar=joi.string().dataUri().required()

//定义验证注册和登录表单数据的规则对象
exports.reg_login_schema = {
  body: {
    username, password
  }
}

//更新用户基本信息验证对象
exports.update_userinfo_schema={
  // 需要对req.body里面的数据进行验证
  body:{
    id,nickname,email
  }
}

//重置密码验证对象
exports.update_password_schema={
  body:{
    oldPwd:password,

    //joi.ref()表示值保持一致
    //joi.not()表示相反
    //joi.concat()表示合并验证规则
    newPwd:joi.not(joi.ref('oldPwd')).concat(password)
  }
}

exports.update_avatar_schema={
  body:{
    avatar
  }
}